// $ANTLR 3.3 Nov 30, 2010 12:45:30 D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g 2012-05-31 15:06:34

package org.moflon.moca.rule.parser;
import org.moflon.moca.MocaUtil;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class RuleLexer extends Lexer {
    public static final int EOF=-1;
    public static final int WHITESPACE=4;
    public static final int TO=5;
    public static final int DONTCARE=6;
    public static final int THIS=7;
    public static final int SEPARATOR=8;
    public static final int NEWLINE=9;
    public static final int OPENPAR=10;
    public static final int CLOSEPAR=11;
    public static final int MUSTEMPTY=12;
    public static final int RULE=13;
    public static final int BEFORE=14;
    public static final int AFTER=15;
    public static final int ROW=16;
    public static final int DONTCARE_FIELD=17;
    public static final int MUSTEMPTY_FIELD=18;
    public static final int THIS_FIELD=19;
    public static final int MAIN=20;

    // delegates
    // delegators

    public RuleLexer() {;} 
    public RuleLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public RuleLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g"; }

    // $ANTLR start "WHITESPACE"
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:11: ( ( ' ' | '\\t' | '\\r' | '/*' ( . )* '*/' ) )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:13: ( ' ' | '\\t' | '\\r' | '/*' ( . )* '*/' )
            {
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:13: ( ' ' | '\\t' | '\\r' | '/*' ( . )* '*/' )
            int alt2=4;
            switch ( input.LA(1) ) {
            case ' ':
                {
                alt2=1;
                }
                break;
            case '\t':
                {
                alt2=2;
                }
                break;
            case '\r':
                {
                alt2=3;
                }
                break;
            case '/':
                {
                alt2=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:14: ' '
                    {
                    match(' '); 

                    }
                    break;
                case 2 :
                    // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:20: '\\t'
                    {
                    match('\t'); 

                    }
                    break;
                case 3 :
                    // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:27: '\\r'
                    {
                    match('\r'); 

                    }
                    break;
                case 4 :
                    // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:34: '/*' ( . )* '*/'
                    {
                    match("/*"); 

                    // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:39: ( . )*
                    loop1:
                    do {
                        int alt1=2;
                        int LA1_0 = input.LA(1);

                        if ( (LA1_0=='*') ) {
                            int LA1_1 = input.LA(2);

                            if ( (LA1_1=='/') ) {
                                alt1=2;
                            }
                            else if ( ((LA1_1>='\u0000' && LA1_1<='.')||(LA1_1>='0' && LA1_1<='\uFFFF')) ) {
                                alt1=1;
                            }


                        }
                        else if ( ((LA1_0>='\u0000' && LA1_0<=')')||(LA1_0>='+' && LA1_0<='\uFFFF')) ) {
                            alt1=1;
                        }


                        switch (alt1) {
                    	case 1 :
                    	    // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:8:39: .
                    	    {
                    	    matchAny(); 

                    	    }
                    	    break;

                    	default :
                    	    break loop1;
                        }
                    } while (true);

                    match("*/"); 


                    }
                    break;

            }

             skip(); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHITESPACE"

    // $ANTLR start "TO"
    public final void mTO() throws RecognitionException {
        try {
            int _type = TO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:9:3: ( '=>' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:9:5: '=>'
            {
            match("=>"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TO"

    // $ANTLR start "DONTCARE"
    public final void mDONTCARE() throws RecognitionException {
        try {
            int _type = DONTCARE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:10:9: ( '*' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:10:11: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DONTCARE"

    // $ANTLR start "THIS"
    public final void mTHIS() throws RecognitionException {
        try {
            int _type = THIS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:11:5: ( '#' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:11:7: '#'
            {
            match('#'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "THIS"

    // $ANTLR start "SEPARATOR"
    public final void mSEPARATOR() throws RecognitionException {
        try {
            int _type = SEPARATOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:12:10: ( '|' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:12:12: '|'
            {
            match('|'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SEPARATOR"

    // $ANTLR start "NEWLINE"
    public final void mNEWLINE() throws RecognitionException {
        try {
            int _type = NEWLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:13:8: ( '\\n' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:13:10: '\\n'
            {
            match('\n'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NEWLINE"

    // $ANTLR start "OPENPAR"
    public final void mOPENPAR() throws RecognitionException {
        try {
            int _type = OPENPAR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:14:8: ( '[' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:14:10: '['
            {
            match('['); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OPENPAR"

    // $ANTLR start "CLOSEPAR"
    public final void mCLOSEPAR() throws RecognitionException {
        try {
            int _type = CLOSEPAR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:15:9: ( ']' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:15:11: ']'
            {
            match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CLOSEPAR"

    // $ANTLR start "MUSTEMPTY"
    public final void mMUSTEMPTY() throws RecognitionException {
        try {
            int _type = MUSTEMPTY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:16:10: ( '_' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:16:12: '_'
            {
            match('_'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MUSTEMPTY"

    // $ANTLR start "RULE"
    public final void mRULE() throws RecognitionException {
        try {
            int _type = RULE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:20:5: ( 'rule' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:20:7: 'rule'
            {
            match("rule"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RULE"

    // $ANTLR start "BEFORE"
    public final void mBEFORE() throws RecognitionException {
        try {
            int _type = BEFORE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:21:7: ( 'before' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:21:9: 'before'
            {
            match("before"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BEFORE"

    // $ANTLR start "AFTER"
    public final void mAFTER() throws RecognitionException {
        try {
            int _type = AFTER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:22:6: ( 'after' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:22:8: 'after'
            {
            match("after"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "AFTER"

    // $ANTLR start "ROW"
    public final void mROW() throws RecognitionException {
        try {
            int _type = ROW;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:23:4: ( 'row' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:23:6: 'row'
            {
            match("row"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ROW"

    // $ANTLR start "DONTCARE_FIELD"
    public final void mDONTCARE_FIELD() throws RecognitionException {
        try {
            int _type = DONTCARE_FIELD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:24:15: ( 'dontcare_field' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:24:17: 'dontcare_field'
            {
            match("dontcare_field"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DONTCARE_FIELD"

    // $ANTLR start "MUSTEMPTY_FIELD"
    public final void mMUSTEMPTY_FIELD() throws RecognitionException {
        try {
            int _type = MUSTEMPTY_FIELD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:25:16: ( 'mustempty_field' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:25:18: 'mustempty_field'
            {
            match("mustempty_field"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MUSTEMPTY_FIELD"

    // $ANTLR start "THIS_FIELD"
    public final void mTHIS_FIELD() throws RecognitionException {
        try {
            int _type = THIS_FIELD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:26:11: ( 'this_field' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:26:13: 'this_field'
            {
            match("this_field"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "THIS_FIELD"

    // $ANTLR start "MAIN"
    public final void mMAIN() throws RecognitionException {
        try {
            int _type = MAIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:27:5: ( 'main' )
            // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:27:7: 'main'
            {
            match("main"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MAIN"

    public void mTokens() throws RecognitionException {
        // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:8: ( WHITESPACE | TO | DONTCARE | THIS | SEPARATOR | NEWLINE | OPENPAR | CLOSEPAR | MUSTEMPTY | RULE | BEFORE | AFTER | ROW | DONTCARE_FIELD | MUSTEMPTY_FIELD | THIS_FIELD | MAIN )
        int alt3=17;
        alt3 = dfa3.predict(input);
        switch (alt3) {
            case 1 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:10: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 2 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:21: TO
                {
                mTO(); 

                }
                break;
            case 3 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:24: DONTCARE
                {
                mDONTCARE(); 

                }
                break;
            case 4 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:33: THIS
                {
                mTHIS(); 

                }
                break;
            case 5 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:38: SEPARATOR
                {
                mSEPARATOR(); 

                }
                break;
            case 6 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:48: NEWLINE
                {
                mNEWLINE(); 

                }
                break;
            case 7 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:56: OPENPAR
                {
                mOPENPAR(); 

                }
                break;
            case 8 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:64: CLOSEPAR
                {
                mCLOSEPAR(); 

                }
                break;
            case 9 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:73: MUSTEMPTY
                {
                mMUSTEMPTY(); 

                }
                break;
            case 10 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:83: RULE
                {
                mRULE(); 

                }
                break;
            case 11 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:88: BEFORE
                {
                mBEFORE(); 

                }
                break;
            case 12 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:95: AFTER
                {
                mAFTER(); 

                }
                break;
            case 13 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:101: ROW
                {
                mROW(); 

                }
                break;
            case 14 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:105: DONTCARE_FIELD
                {
                mDONTCARE_FIELD(); 

                }
                break;
            case 15 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:120: MUSTEMPTY_FIELD
                {
                mMUSTEMPTY_FIELD(); 

                }
                break;
            case 16 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:136: THIS_FIELD
                {
                mTHIS_FIELD(); 

                }
                break;
            case 17 :
                // D:\\Dokumente\\Studium\\12WS-ND\\mbse2\\BoardGame\\src\\org\\moflon\\moca\\rule\\parser\\RuleLexer.g:1:147: MAIN
                {
                mMAIN(); 

                }
                break;

        }

    }


    protected DFA3 dfa3 = new DFA3(this);
    static final String DFA3_eotS =
        "\24\uffff";
    static final String DFA3_eofS =
        "\24\uffff";
    static final String DFA3_minS =
        "\1\11\11\uffff\1\157\3\uffff\1\141\5\uffff";
    static final String DFA3_maxS =
        "\1\174\11\uffff\1\165\3\uffff\1\165\5\uffff";
    static final String DFA3_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\uffff\1\13\1\14"+
        "\1\16\1\uffff\1\20\1\12\1\15\1\17\1\21";
    static final String DFA3_specialS =
        "\24\uffff}>";
    static final String[] DFA3_transitionS = {
            "\1\1\1\6\2\uffff\1\1\22\uffff\1\1\2\uffff\1\4\6\uffff\1\3\4"+
            "\uffff\1\1\15\uffff\1\2\35\uffff\1\7\1\uffff\1\10\1\uffff\1"+
            "\11\1\uffff\1\14\1\13\1\uffff\1\15\10\uffff\1\16\4\uffff\1\12"+
            "\1\uffff\1\17\7\uffff\1\5",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\21\5\uffff\1\20",
            "",
            "",
            "",
            "\1\23\23\uffff\1\22",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA3_eot = DFA.unpackEncodedString(DFA3_eotS);
    static final short[] DFA3_eof = DFA.unpackEncodedString(DFA3_eofS);
    static final char[] DFA3_min = DFA.unpackEncodedStringToUnsignedChars(DFA3_minS);
    static final char[] DFA3_max = DFA.unpackEncodedStringToUnsignedChars(DFA3_maxS);
    static final short[] DFA3_accept = DFA.unpackEncodedString(DFA3_acceptS);
    static final short[] DFA3_special = DFA.unpackEncodedString(DFA3_specialS);
    static final short[][] DFA3_transition;

    static {
        int numStates = DFA3_transitionS.length;
        DFA3_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA3_transition[i] = DFA.unpackEncodedString(DFA3_transitionS[i]);
        }
    }

    class DFA3 extends DFA {

        public DFA3(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 3;
            this.eot = DFA3_eot;
            this.eof = DFA3_eof;
            this.min = DFA3_min;
            this.max = DFA3_max;
            this.accept = DFA3_accept;
            this.special = DFA3_special;
            this.transition = DFA3_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( WHITESPACE | TO | DONTCARE | THIS | SEPARATOR | NEWLINE | OPENPAR | CLOSEPAR | MUSTEMPTY | RULE | BEFORE | AFTER | ROW | DONTCARE_FIELD | MUSTEMPTY_FIELD | THIS_FIELD | MAIN );";
        }
    }
 

}